table of contents
ioctl(2) | 2007-10-27-16:31 | ioctl(2) |
НАЗВА¶
іoctl - керує пристроями
СИНТАКСИС¶
#include <sys/ioctl.h>
int ioctl(int d, int request, ...);
/* третім аргументом, як правило є char *argp */
ОПИС¶
Функція іoctl керує пристроями , на які посилаються спеціальні файли. За допомогою запитів іoctl можна керувати багатьма символьними пристроями (character devices) (наприклад, терміналами). Аргумент d повинен бути відкритим дескриптором файлу (пристрою).
Другий аргумент, request, є залежним від пристрою, кодом запиту. Третім аргументом є покажчик на пам'ять, що не має типу. Це традиційно char *argp (ще з тих часів, коли void * було чинним C), і ми так і будемо використовувати його у цій дискусії.
Параметр request має вбудовану в собі інформацію, чи являється третій аргумент вхідним чи вихідним і, додатково, розмір argp у байтах. Макроси і визначення define, що використовуються для виклику запитів request функції іoctl, знаходяться у файлі <sys/ioctl.h>.
ПОВЕРНЕНЕ ЗНАЧЕННЯ¶
Звичайно, при успішному завершенні повертається нульове значення. Деякі іoctl використовують повернене значення як параметр виводу і при успішному завершенні повертають позитивне значення. При помилці повернене значення дорівнює -1, і errno присвоюється код помилки.
КОДИ ПОМИЛОК¶
ВІДПОВІДНІСТЬ СТАНДАРТАМ¶
Не існує єдиного стандарту. Аргументи, повернені значення і семантика ioctl(2) різні у кожному конкретному випадку, в залежності від драйвера пристрою (виклик є загальним для всіх операцій, що не вписуються у модель потокового вводу/виводу Unix). Передивіться ioctl_list(2), у якому перелічені більшість викликів іoctl. Виклик іoctl уперше з'явився у версії 7 AT&T Unix.
ДИВІТЬСЯ ТАКОЖ¶
execve(2), fcntl(2), ioctl_list(2), mt(4), sd(4), tty(4)
---- Переклав українською Віталій Цибуляк.
2007-10-27-16:31 | © 2005-2007 DLOU, GNU FDL |